// api.js
import axios from 'axios';
import qs from 'qs';
import cookies  from './cookies';
import router from "@/router";

// 创建axios实例
const instance = axios.create({
    baseURL: import.meta.env.VITE_BASEURL, // 替换为你的后端接口地址
    timeout: 10000, // 请求超时时间
});

// 请求拦截器
instance.interceptors.request.use(
    config => {
        // 在请求发送之前可以做一些处理，比如添加请求头等
        if(cookies.getCookie('token')){
            config.headers['Authorization'] = 'Bearer ' + cookies.getCookie('token');
        }
        if(cookies.getCookie('id')){
            config.headers['id'] = cookies.getCookie('id');
        }
        if(cookies.getCookie('usernam')){
            config.headers['usernam'] = cookies.getCookie('usernam');
        }
        if(cookies.getCookie('system')){
            config.headers['system'] = cookies.getCookie('system');
        }
        if(cookies.getCookie('refresh')){
            config.headers['refresh'] = cookies.getCookie('refresh');
        }
        return config;
    },
    error => {
        // 请求错误处理
        return Promise.reject(error);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    response => {
        // 在这里可以对响应数据进行处理
        console.log('拦截器响应数据：', response);
        return response.data;
    },
    error => {
        // 响应错误处理
        console.log('拦截器响应报错数据：', error);
        if(error.response.status == 401) {
            cookies.removeCookie('id');
            cookies.removeCookie('username');
            cookies.removeCookie('token');
            cookies.removeCookie('refresh');
            router.push({path: "/"});
        }
        return Promise.reject(error);
    }
);

// 封装get请求
export function get(url, params) {
    return instance.get(url, {
        params,
    });
}

// 封装post请求
export function post(url, data) {
    return instance.post(url, qs.stringify(data));
}

export default instance ;